package com.atguigu.cloud.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * Lov配置实体类
 * 
 * @author atguigu
 * @since 2024-01-01
 */
@Data
@TableName("lov_config")
public class LovConfig {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * Lov编码
     */
    private String lovCode;

    /**
     * Lov名称
     */
    private String lovName;

    /**
     * Lov描述
     */
    private String lovDesc;

    /**
     * 弹窗标题
     */
    private String title;

    /**
     * 标题字段
     */
    private String titleField;

    /**
     * 提示字段
     */
    private String hintField;

    /**
     * 数据源SQL
     */
    private String dataSourceSql;

    /**
     * 数据源类型：SQL/URL
     */
    private String dataSourceType;

    /**
     * 数据源URL
     */
    private String dataSourceUrl;

    /**
     * 显示字段（TextField）
     */
    private String displayField;

    /**
     * 值字段（ValueField）
     */
    private String valueField;

    /**
     * 每页显示条数
     */
    private Integer pageSize;

    /**
     * 弹窗高度
     */
    private Integer dialogHeight;

    /**
     * 弹窗宽度
     */
    private Integer dialogWidth;

    /**
     * 列数
     */
    private Integer columnCount;

    /**
     * 是否可编辑
     */
    private Boolean editable;

    /**
     * 是否树形结构
     */
    private Boolean treeStructure;

    /**
     * 是否启用
     */
    private Boolean enabled;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 列配置（不映射到数据库）
     */
    @TableField(exist = false)
    private List<LovColumnConfig> columns;
}
